Skip to content

Phase 5.8 M3: land regtest AuxPoW KAT (h=20) into master (test-only regression guard) - #64

Merged
frstrtr merged 1 commit into
masterfrom
ltc-doge/m3-kat-regguard
Jun 4, 2026
Merged

Phase 5.8 M3: land regtest AuxPoW KAT (h=20) into master (test-only regression guard)#64
frstrtr merged 1 commit into
masterfrom
ltc-doge/m3-kat-regguard

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 4, 2026

Copy link
Copy Markdown
Owner

Test-only regression-guard backport of the #59 AuxPoW KAT

Lands the Phase 5.8 M3 known-answer vector + test into master so it runs in CI on every future change. The KAT was authored on the now-merged-away c2pool-m3 worktree (a6693c2d); without this backport it provides zero ongoing regression protection. For a V36 hard gate (Phase 5.8 AuxPoW), the proof must be replayable from master history.

What this is

Cherry-pick of a6693c2d — a single test file change:

  • test/test_doge_chain.cpp (+186)
    • fixture constant: the 217-byte / 434-hex CAuxPow proof serialized by dogecoind from a real AuxPoW block mined at height 20 on the operator-ratified self-hosted regtest/testnet4alpha seed
    • AuxPowKnownAnswerTest.RegtestH20CAuxPowDecodesRealProof — feeds the fixture through the c2pool CAuxPow Unserialize path (the one parse_aux_header() drives), asserts field-for-field (parent coinbase fabe6d6d merged-mining commitment, CMerkleTx tail, empty single-chain merkle links, parent 80-byte header), and confirms exact consumption (cursor_size() == 0)
    • the test_doge_chain wiring

What this is NOT

No source or behavior change. No new production code paths. Single-coin tree (src/impl/doge/ consumers + the doge test only) — no cross-coin entanglement, stays inside isolation rules.

Verification (this branch, clean off origin/master 6528ece)

  • test_doge_chain: 37/37 green, including RegtestH20CAuxPowDecodesRealProof
  • Linux x86_64, Release, Conan toolchain
  • Commit GPG-signed

Per-coin DOGE smoke gate suffices. Holding for operator push approval before merge.

Add a known-answer vector built from a real AuxPoW block mined at height 20
on the operator-ratified self-hosted regtest/testnet4alpha seed and accepted
by dogecoind. The 217-byte CAuxPow proof, serialized by Dogecoin Core itself,
is fed straight through the c2pool CAuxPow Unserialize path (the one
parse_aux_header drives) and asserted field-for-field: parent coinbase with
the fabe6d6d merged-mining commitment, CMerkleTx tail, empty single-chain
merkle links, and the parent 80-byte header. Consumes exactly 217 bytes.

Also fix the hex_to_bytes helper char literals (the 0/9/a/f/A/F comparisons
were missing single quotes, so the prior KAT draft did not compile).

test_doge_chain 37/37 green; full ctest 590/590 green (Linux x86_64).
@frstrtr
frstrtr merged commit 7f992f1 into master Jun 4, 2026
12 of 14 checks passed
@frstrtr
frstrtr deleted the ltc-doge/m3-kat-regguard branch June 4, 2026 09:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant